namespace RBAC.Read.Api.Application.Interfaces
{
    using RBAC.ErrorCode;
    using RBAC.Read.Api.Application.Dto;

    /// <summary>
    /// 生产工单（读侧）服务接口：列表与详情。
    /// 仅定义签名，不提供实现，避免影响现有代码。
    /// </summary>
    public interface IProductionWorkOrderReadService
    {
        /// <summary>
        /// 2.1 生产工单列表查询方法。
        /// </summary>
        /// <param name="filter">筛选与分页参数。</param>
        /// <returns>分页结果：列表项 DTO。</returns>
        APIPaging<WorkOrderListItemDto> GetProductionWorkOrderList(WorkOrderListFilterDto filter);

        /// <summary>
        /// 2.3 生产工单详情查询方法。
        /// </summary>
        /// <param name="orderCode">工单号。</param>
        /// <returns>工单详情聚合 DTO。</returns>
        APIResult<WorkOrderDetailDto> GetProductionWorkOrderDetail(string orderCode);

        /// <summary>
        /// 导出生产工单列表（按筛选条件，不分页）。
        /// 返回 Excel 文件二进制。
        /// </summary>
        /// <param name="filter">筛选条件（忽略分页参数）。</param>
        /// <returns>导出结果：APIResult<byte[]>。</returns>
        APIResult<byte[]> ExportProductionWorkOrders(WorkOrderListFilterDto filter);
    }
}
